Skip to content

Let a downloaded update be superseded instead of sticking forever - #123

Merged
badcuban merged 3 commits into
mainfrom
fix/stale-update-pill
Aug 7, 2026
Merged

Let a downloaded update be superseded instead of sticking forever#123
badcuban merged 3 commits into
mainfrom
fix/stale-update-pill

Conversation

@badcuban

@badcuban badcuban commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Fixes the stuck sidebar update pill: once an update was downloaded, every later check (4-minute poll AND the manual menu action) short-circuited on the downloaded state, so the pill advertised its version forever even after a newer nightly shipped or the release was pulled (exactly what happened with the cleaned-up .220 draft).

  • Checks now run silently while an update sits downloaded: no state flicker on polls, but the feed is actually consulted.
  • Feed answers a newer version: the cycle restarts and the pill moves to it.
  • Feed answers the same version: no churn, pill untouched.
  • Feed no longer offers it: the pill clears to up-to-date.

Three new harness tests cover supersede / steady-state / revoked; gates green, desktop suites 23/23. Desktop state machine only, no UI markup changes.

Two hardenings from a real mid-turn token expiry that presented as a
silent session crash:

- A Claude turn that dies with an error the auth patterns cannot
  classify (the SDK's stream diagnostics look nothing like a 401 even
  when an expired credential caused them) now triggers a rate-limited
  instance re-probe, so the snapshot flips and the sign-in surface
  appears in seconds instead of after the next scheduled probe, up to
  five minutes later.

- A Codex error notification marked retryable but reading as an auth
  failure is now terminal at both layers (adapter event class and
  session status): retrying cannot heal an expired credential, and the
  old path burned the app-server's whole reconnect schedule before the
  sign-in surface appeared.
Once an update reached the downloaded state, every later check was
skipped, including the manual menu action, so the ready pill kept
advertising whatever it had downloaded even after a newer release
shipped or the release it came from was pulled. Checks now run silently
in the downloaded state (no checking flicker on the 4-minute poll): a
newer version restarts the cycle, the same version leaves the pill
untouched, and a feed that no longer offers the update clears it.
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
threadlines Skipped Skipped Aug 7, 2026 4:54pm

Request Review

@github-actions github-actions Bot added size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Aug 7, 2026
@badcuban
badcuban merged commit 923b92a into main Aug 7, 2026
13 checks passed
@badcuban
badcuban deleted the fix/stale-update-pill branch August 7, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant